package com.example.demo.services;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.port.fee.entity.Cargo;

/**
 * 货物服务接口
 */
public interface CargoService extends IService<Cargo> {
    
    /**
     * 分页查询货物列表
     * @param cargo 查询条件
     * @param pageNum 页码
     * @param pageSize 每页记录数
     * @return 分页结果
     */
    Page<Cargo> listCargos(Cargo cargo, int pageNum, int pageSize);
    
    /**
     * 新增货物
     * @param cargo 货物信息
     * @return 成功返回true，失败返回false
     */
    boolean addCargo(Cargo cargo);
    
    /**
     * 修改货物
     * @param cargo 货物信息
     * @return 成功返回true，失败返回false
     */
    boolean updateCargo(Cargo cargo);
    
    /**
     * 删除货物
     * @param cargoId 货物ID
     * @return 成功返回true，失败返回false
     */
    boolean deleteCargo(Long cargoId);
    
    /**
     * 获取货物详情
     * @param cargoId 货物ID
     * @return 货物信息
     */
    Cargo getCargoById(Long cargoId);
    
    /**
     * 更新货物出港状态
     * @param cargoId 货物ID
     * @param exitTime 出港时间
     * @return 成功返回true，失败返回false
     */
    boolean exitPort(Long cargoId, java.util.Date exitTime);
} 